package reflect;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/**
 * 利用反射机制调用Person类中所有的无参方法
 * 提示：
 * Method类上有一个方法：
 * int getParameterCount()
 * 该方法用于获取当前方法对象所表示的方法所多少个参数
 */
public class Test1 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
        Class cls=Class.forName("reflect.Person");
        Object obj=cls.newInstance();

        Method[] methods=cls.getDeclaredMethods();

        for(Method method: methods){
            if(method.getParameterCount() == 0){
                method.setAccessible(true);
                method.invoke(obj);
                method.setAccessible(false);
            }
        }








    }
}
